package com.scalar.chiptrack.sales.dao.local;

import com.scalar.chiptrack.db.DBTransaction;
import com.scalar.chiptrack.sales.SalesOrderInvoice;
import com.scalar.chiptrack.sales.SalesOrderInvoiceList;
import com.scalar.chiptrack.sales.SalesOrderInvoiceLineItemList;
import com.scalar.chiptrack.sales.dao.ISalesOrderInvoiceDAO;
import com.scalar.ScalarException;

import java.util.HashMap;
import java.util.ArrayList;

/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: Jan 29, 2004
 * Time: 5:13:13 PM
 * To change this template use Options | File Templates.
 */
public class LocalSalesOrderInvoiceDAOImpl implements ISalesOrderInvoiceDAO
{
    /**
     * Saves Sales Order Invoice Information in the database
     *
     * @param salesOrderInvoice
     * @throws com.scalar.ScalarException
     */
    public void saveSalesOrderInvoice( DBTransaction dbTransaction, SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * Updates Sales Order Invoice Information in the database
     *
     * @param salesOrderInvoice
     * @throws com.scalar.ScalarException
     */
    public void updateSalesOrderInvoice( DBTransaction dbTransaction, SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * Displays all Sales Order Invoices
     *
     * @param salesOrderInvoice
     * @return SalesOrderInvoiceList
     * @throws com.scalar.ScalarException
     */

    public SalesOrderInvoiceList loadSalesOrderInvoices( SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }


    /**
     * Displays Receivings Transaction Information
     *
     * @param salesOrderInvoice
     * @return SalesOrderInvoice
     * @throws com.scalar.ScalarException
     */

    public SalesOrderInvoice loadSalesOrderInvoice( SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * Displays all Sales Order Invoice Line Items
     *
     * @param  salesOrderInvoice
     * @return SalesOrderInvoiceList
     * @throws com.scalar.ScalarException
     */

    public SalesOrderInvoiceLineItemList loadSalesOrderInvoiceLineItems( SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }
    /**
     * Loads the Receipt number for New Purchase Order
     *
     * @return String
     * @throws com.scalar.ScalarException
     */

    public String loadInvoiceNumber() throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * Returns if a Invoice Number exists
     *
     * @param salesOrderInvoice
     * @return boolean
     * @throws com.scalar.ScalarException
     */
    public boolean salesOrderInvoiceNumberExists( SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

     /* Loads the Default Site for New Sales Invoice
     *
     * @return String
     * @throws ScalarException
     */

    public String loadDefaultSite() throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * Loads the Invoice Return number for New Sales Invoice
     *
     * @return String
     * @throws ScalarException
     */

    public String loadInvoiceReturnNumber() throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }
    /**
     * Returns List of Items with Item Price .
     * @return ArrayList
     * @throws ScalarException
     */
    public HashMap loadMarketingPartNosUnitCost( ) throws ScalarException
    {
       throw new ScalarException( "Not Implemented" );
    }
   /**
     * Returns List of Items with Item Description .
     * @return ArrayList
     * @throws ScalarException
     */
    public HashMap loadMarketingDescriptions( ) throws ScalarException
    {
       throw new ScalarException( "Not Implemented" );
    }
   /**
     * Returns List of Manufacturing Part Nos( Items )
     * @return ArrayList
     * @throws ScalarException
     */

    public ArrayList loadAllManfacturingPartNumbers() throws ScalarException
   {
       throw new ScalarException( "Not Implemented" );
   }
    /**
     * Returns List of Manufacturing Part Nos (Items) with Item Description .
     * @return HashMap
     * @throws ScalarException
     */
    public HashMap loadAllManfacturingPartNumbersWithComments() throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }
    /**
     * Returns List of Manufacturing Part Nos (Items) with Item Description .
     * @return HashMap
     * @throws ScalarException
     */
    public HashMap loadAllManfacturingPartNumbersCost() throws ScalarException
    {
       throw new ScalarException( "Not Implemented" );
    }
    /**
    * Returns Empty List of Empy Sales Order Number List.
    * @return  ArrayList
    * @throws ScalarException
    */
    public ArrayList loadEmptySalesOrdersList() throws ScalarException
    {
       throw new ScalarException( "Not Implemented" );
    }
    /**
     * Returns List of Sales Order Numbers Based on Customer Id.
     * @return  ArrayList
     * @throws ScalarException
     */
    public ArrayList loadSONumbersByCustomer( SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * Displays all Sales Orders Line Items for Invoice
     *
     * @param  selectedSONumber
     * @return SalesOrderInvoiceList
     * @throws ScalarException
     */

    public SalesOrderInvoiceLineItemList loadSalesOrdersInvoiceLineItemsBySO( String selectedSONumber, int invoiceCount ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * Loads the line item list for which sales order invoice is to be created from the packing slip data
     * This method accepts packingShipLabel and salesOrderNumber as the search criteria
     *
     * @param packingSlipLabel
     * @param salesOrderNumber
     * @return SalesOrderInvoiceList
     * @throws ScalarException
     */
    public SalesOrderInvoiceLineItemList loadSalesOrdersLineItemFromPackingSlipData( String packingSlipLabel, String salesOrderNumber, String year, String customerPO, int customerId, int locationId ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * This will update invoice generated field in the packing slip line item table for those invoices whose invoice has been generated
     *
     * @param dbTransaction
     * @param salesOrderInvoiceLineItemList
     * @throws ScalarException
     */
    public void updatePackingSlipLineItemInformation( DBTransaction dbTransaction, SalesOrderInvoiceLineItemList salesOrderInvoiceLineItemList ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * This method checks if the given invoice number is existing in the database
     *
     * @param dbTransaction
     * @param invoiceNumber
     * @param docType
     * @throws ScalarException
     */
    public boolean checkInvoiceNumberExists( DBTransaction dbTransaction, String invoiceNumber, int docType ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * This method sets the lot details from which the quantities have been pulled for the respective line items
     *
     * @param dbTransaction
     * @param salesOrderInvoiceLineItemList
     * @throws ScalarException
     */
    public void setSalesOrderInvoiceLineItemLotDetails( DBTransaction dbTransaction, SalesOrderInvoiceLineItemList salesOrderInvoiceLineItemList ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * This method saves the lot details from which the quantities have been pulled for the respective line items
     *
     * @param dbTransaction
     * @param salesOrderInvoice
     * @return int value giving the status of the save
     *          <li> 0 : Saved successfully
     *          <li> 1 : Sales Invoice line item is not present
     *          <li> 2 : Lot is not existing
     *          <li> 3 : Insufficient qty
     *
     * @throws ScalarException
     */
    public int saveSalesOrderInvoiceLineItemLotDetails( DBTransaction dbTransaction, SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * This method sets the gp location of the sales order invoice line items in the list
     *
     * @param dbTransaction
     * @param salesOrderInvoiceLineItemList
     * @throws ScalarException
     */
    public void setSalesOrderInvoiceLineItemGpLocation( DBTransaction dbTransaction, SalesOrderInvoiceLineItemList salesOrderInvoiceLineItemList ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }
    /**
     * This will update invoice Number field in the Customer Shipping table for those Packing Slip whose invoice has been generated
     *
     * @param dbTransaction
     * @param salesOrderInvoice
     * @throws ScalarException
     */
    public void updateInvoiceNumber( DBTransaction dbTransaction, SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }

    /**
     * This Method loads all Customer Names from customer Table
     * @param dbTransaction
     * @return ArrayList
     * @throws ScalarException
     */
    public ArrayList loadAllCustomers( DBTransaction dbTransaction ) throws ScalarException
    {
       throw new ScalarException( "Not Implemented" );
    }
    /**
     * This Method loads all Location Names from location Table
     * @param dbTransaction
     * @return ArrayList
     * @throws ScalarException
     */
    public ArrayList loadAllLocations( DBTransaction dbTransaction ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }
    /**
     * This Method is to delete Sales order Invoice
     * @param dbTransaction
     * @param salesOrderInvoice
     * @throws ScalarException
     */
    public void deleteSalesOrderInvoice( DBTransaction dbTransaction , SalesOrderInvoice salesOrderInvoice )  throws ScalarException
    {
         throw new ScalarException( "Not Implemented" );
    }

    /**
    * This Method is to update Sales order Invoice details in CT
    * @param dbTransaction
    * @param salesOrderInvoice
    * @throws ScalarException
    */


    public void updateInvoiceInfo( DBTransaction dbTransaction, SalesOrderInvoice salesOrderInvoice ) throws ScalarException
    {
        throw new ScalarException( "Not Implemented" );
    }
}

